/*
 * CS_MOVE.cpp
 *
 *  Created on: 2013. 5. 21.
 *      Author: the2
 */

#include "../../User.h"
#include "CS_MOVE.h"

#include "../../NLogic/Static.h"
#include "../../NLogic/Battle.h"

namespace ProjectZ { namespace NCommand { namespace NAction {

void CS_MOVE::OnExecute(User * pUser, ::Network::Packet * pPacket)
{
	/*
	 * CS_MOVE	0x0401	12
	 *		4	unsigned int	GID
			2	posx	x 좌표
			2	posy	y 좌표
			2	degree	이동벡터정보
			2	speed	속도
			1	char	몬스터여부 (0 : 주인공 1: 몬스터 2: 주인공소환, 3: 몬스터 소환)


			SC_MOVE	0x0402	12
			4	unsigned int	GID
			2	posx	x 좌표
			2	posy	y 좌표
			2	degree	이동벡터정보
			2	speed	속도
			1	char	몬스터여부 (0 : 주인공 1: 몬스터 2: 주인공소환, 3: 몬스터 소환)
	 *
	 */

	NLogic::Space * pSpace = pUser->GetSpace();
	if (NULL == pSpace)
	{
		DEBUGLOG("CS_MOVE NULL == pSpace");
		return;
	}

	PREPARE_PACKET;

	unsigned int GID = 0;
	int16_t x = 0;
	int16_t y = 0;
	int16_t degree = 0;
	int16_t speed = 0;
	int8_t ismonster = 0;

	* pPacket >> GID >> x >> y >> degree >> speed >> ismonster;



	int targetgid = GID;

	// 고성종 차장 요청으로 죄표 셋팅 삭제...
//	if( ismonster == 0 )
//	{
//		if( NLogic::Space::SpaceType::BATTLEROYAL != pSpace->GetData()._spaceType )
//		{
//			targetgid = pUser->GetUserSeq();
//
//			pUser->GetBattle()->GetData().x = x;
//			pUser->GetBattle()->GetData().y = y;
//			pUser->GetBattle()->GetData().degree = degree;
//			pUser->GetBattle()->GetData().speed = speed;
//		}
//		else
//		{
//			pUser->GetBattleRoyalBattle()->GetData().x = x;
//			pUser->GetBattleRoyalBattle()->GetData().y = y;
//			pUser->GetBattleRoyalBattle()->GetData().degree = degree;
//			pUser->GetBattleRoyalBattle()->GetData().speed = speed;
//		}
//	}
//	else if( ismonster == 1 )
//	{
//		//targetgid = GID;
//	}
//	else if( ismonster == 2 )
//	{
//		//targetgid = GID;
//	}
//	else if( ismonster == 3 )
//	{
//		//targetgid = GID;
//	}

	//::Logger::GETLOG()->ToFile(::Logger::DEBUG, "CS_MOVE GID : %d, targetgid=%d, ismonster=%d", pUser->GetGID(), targetgid, ismonster);


//	Toolkit::Str<1024* 10> clsTempBuffer;
//	for (int i = 0; i < 1024 * 10; ++i)
//	{
//		clsTempBuffer += i;
//	}

	::Network::Packet * pNoti = ::Network::GETPACKETPOOL()->SEND_NEW();
	* pNoti << targetgid << x << y << degree << speed << ismonster;// << clsTempBuffer;
	pNoti->MakePacket(CMD_SC_MOVE);

	pSpace->SendAllExceptMe(pNoti, pUser);
}

} /*NAction*/ } /*NCommand*/ } /*ProjectZ*/
